package rh;

import java.util.Collection;
import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import seguranca.Usuario;
import cadastro.Endereco;
import cadastro.Pessoa;


@Entity
public class Funcionario extends Pessoa {
	@ManyToOne
	private Cargo cargo;	
	
	private String matricula;
	
	@Temporal(TemporalType.DATE)
	private Date dataAdmissao;
	
	@Temporal(TemporalType.DATE)
	private Date dataDemissao;
	
	@ManyToOne
	private Setor departamento;
	
	
	@OneToOne
	private Usuario usuario;
	
	@ManyToOne
	private Escolaridade escolaridade;

	
	public Funcionario(String nome, String cpf, Date dataNascimento,
			Endereco endereco, Collection<String> telefones, String email) {
		super(nome, cpf, dataNascimento, endereco, telefones, email);
	}
	public Funcionario(String nome, String cpf, Date dataNascimento,
			Endereco endereco, Collection<String> telefones, String email,
			Cargo cargo, String matricula, Date dataAdmissao,
			Date dataDemissao, Setor departamento, Usuario usuario,
			Escolaridade escolaridade) {
		super(nome, cpf, dataNascimento, endereco, telefones, email);
		this.cargo = cargo;
		this.matricula = matricula;
		this.dataAdmissao = dataAdmissao;
		this.dataDemissao = dataDemissao;
		this.departamento = departamento;
		this.usuario = usuario;
		this.escolaridade = escolaridade;
	}
	// gets e sets
	public Cargo getFuncao() {
		return cargo;
	}
	public void setFuncao(Cargo funcao) {
		this.cargo = funcao;
	}
	public String getMatricula() {
		return matricula;
	}
	public void setMatricula(String matricula) {
		this.matricula = matricula;
	}
	public Date getDataAdmissao() {
		return dataAdmissao;
	}
	public void setDataAdmissao(Date dataAdmissao) {
		this.dataAdmissao = dataAdmissao;
	}
	public Date getDataDemissao() {
		return dataDemissao;
	}
	public void setDataDemissao(Date dataDemissao) {
		this.dataDemissao = dataDemissao;
	}
	public Setor getDepartamento() {
		return departamento;
	}
	public void setDepartamento(Setor departamento) {
		this.departamento = departamento;
	}
	public Usuario getUsuario() {
		return usuario;
	}
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	public Escolaridade getEscolaridade() {
		return escolaridade;
	}
	public void setEscolaridade(Escolaridade escolaridade) {
		this.escolaridade = escolaridade;
	}
	
}
